Описание
Отменяет отложенный вызов асинхронного метода (только в рабочей
области ODBCDirect).
объект.Cancel
Параметры
объект
Строковое выражение, значением которого
является один из объектов, перечисленных в списке "Применение".
Замечания
Метод Cancel используют для отмены выполнения
асинхронного метода Execute, MoveLast, OpenConnection или
OpenRecordset(т.е. при неявном вызове метода с помощью параметра
dbRunAsync). Если параметр dbRunAsync не был использован при вызове
отменяемого метода, то метод Cancel возвращает ошибку выполнения.
В
следующей таблице показано, какие задачи отменяются при вызове метода
Cancel для объектов разных типов.
Connection Execute или OpenConnection QueryDef Execute Recordset MoveLast или OpenRecordset
Ошибка возникает также, если после вызова метода Cancel делается
попытка сослаться на объект, который был бы создан при асинхронном вызове метода
OpenConnection или OpenRecordset (т.е. на объект Connection
или Recordset, из которого был вызван метод Cancel).
Пример
Следующая программа использует свойство StillExecuting и
метод Cancel для асинхронного открытия объекта Connection.
Sub CancelConnectionX()
Dim wrkMain As Workspace
Dim conMain As Connection
Dim sngTime As Single
Set wrkMain = CreateWorkspace("ODBCWorkspace", "admin", "", dbUseODBC)
' Открывает асинхронное подключение.
Set conMain = wrkMain.OpenConnection("Publishers", dbDriverNoPrompt + dbRunAsync, False, _
"ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers")
sngTime = Timer
' Ожидает пять секунд.
Do While Timer - sngTime < 5
Loop
' Если подключение не установлено, запрашивает пользователя,
' следует ли продлить ожидание. Если нет команды на продление,
' отменяет подключение и осуществляет выход из процедуры.
Do While conMain.StillExecuting
If MsgBox("Подключение не установлено. Продлить ожидание?", vbYesNo) = vbNo Then
conMain.Cancel
MsgBox "Подключение отменено!"
wrkMain.Close
Exit Sub
End If
Loop
With conMain
' Использует объект Connection с именем conMain.
.Close
End With
wrkMain.Close
End Sub